package com.zhilianbao.leyaogo.http.api;

import android.content.Context;

import com.zhilianbao.leyaogo.constants.HttpConfig;
import com.zhilianbao.leyaogo.http.client.LeYaoGoClient;
import com.zhilianbao.leyaogo.utils.Utils;
import com.zhilianbao.okhttputils.callback.Callback;
import com.zhilianbao.okhttputils.model.JsonParams;

import static com.zhilianbao.leyaogo.http.api.ShoppingCartApi.I_METHOD_SET_SHOPPING_CART;

/**
 * 商品分类，详情页相关的api
 * Created by gyt on 2016/11/1
 */
public class CategoryApi {

    /**
     * 获取商品分类列表
     *
     * @param context
     * @param supplierId
     * @param callback
     */
    public static void getClassifyList(Context context, long supplierId, Callback callback) {
        JsonParams jsonParams = new JsonParams();
        jsonParams.put("supplierId", supplierId);
        LeYaoGoClient.post(context, HttpConfig.BASE_URL + HttpConfig.METHOD_GET_CLASSIFY_LIST, jsonParams, callback);
    }

    /**
     * 根据商品类别获取商品列表
     *
     * @param context
     * @param classifyId
     * @param callback
     * @param pageNo     当前页数
     * @param pageSize   每页size
     */
    public static void getGoodsList(Context context, long supplierId, int classifyId, int pageNo, int pageSize, Callback callback) {
        JsonParams jsonParams = new JsonParams();
        jsonParams.put("supplierId", supplierId);
        jsonParams.put("classifyId", classifyId);
        jsonParams.put("userId", Utils.isUserLogin(false) ? Utils.getUserLoginInfo().getUserId() : 0);
        jsonParams.put("pageNo", pageNo);
        jsonParams.put("pageSize", pageSize);
        LeYaoGoClient.post(context, HttpConfig.BASE_URL + HttpConfig.METHOD_GET_GOODS_LIST, jsonParams, callback);
    }

    /**
     * 根据商品类别获取首页商品列表
     *
     * @param context
     * @param customClassifyId
     * @param callback
     * @param pageNo           当前页数
     * @param pageSize         每页size
     */
    public static void getHomeGoodsList(Context context, long supplierId, int customClassifyId, int pageNo, int pageSize, Callback callback) {
        JsonParams jsonParams = new JsonParams();
        jsonParams.put("supplierId", supplierId);
        jsonParams.put("customClassifyId", customClassifyId);
        jsonParams.put("userId", Utils.isUserLogin(false) ? Utils.getUserLoginInfo().getUserId() : 0);
        jsonParams.put("pageNo", pageNo);
        jsonParams.put("pageSize", pageSize);
        LeYaoGoClient.post(context, HttpConfig.BASE_URL + HttpConfig.METHOD_GET_GOODS_LIST, jsonParams, callback);
    }


    /**
     * 获取商品详情信息
     *
     * @param context
     * @param goodsId
     * @param goodsSkuId 如果是sku商品则传该商品的goodsSkuId，
     * @param callback
     */
    public static void getGoodsDetail(Context context, int goodsId, int goodsSkuId, Callback callback) {
        JsonParams jsonParams = new JsonParams();
        jsonParams.put("goodsId", goodsId);
        jsonParams.put("goodsSkuId", goodsSkuId);
        // 用户已经登录了传userId，没有登录传0
        jsonParams.put("userId", Utils.isUserLogin(false) ? Utils.getUserLoginInfo().getUserId() : 0);
        LeYaoGoClient.post(context, HttpConfig.BASE_URL + HttpConfig.METHOD_GET_GOODS_DETAIL, jsonParams, callback);
    }


    /**
     * 添加商品到购物车
     *
     * @param context
     * @param userId
     * @param goodsId    商品ID integerMin. Value:1,
     * @param supplierId 运营商ID integerMin. Value:1,
     * @param shopId     店铺ID integerMin. Value:1,
     * @param goodsSkuId SKU商品对应SKU商品编号 如没有就传0
     * @param number
     * @param type       添加方式 0正常流程 1购物车添加
     * @param callback
     */
    public static void addToShoppingCart(Context context, int userId, int goodsId, int supplierId, int shopId, int goodsSkuId, int number, int type, Callback callback) {
        JsonParams jsonParams = new JsonParams();
        jsonParams.put("userId", userId);
        jsonParams.put("goodsId", goodsId);
        jsonParams.put("supplierId", supplierId);
        jsonParams.put("shopId", shopId);
        jsonParams.put("goodsSkuId", goodsSkuId);
        jsonParams.put("number", number);
        jsonParams.put("type", type);
        LeYaoGoClient.post(context, HttpConfig.BASE_URL + I_METHOD_SET_SHOPPING_CART, jsonParams, callback);
    }

    /**
     * 收藏商品
     *
     * @param context
     * @param type         操作类型 0 删除 1 添加 ,
     * @param userId
     * @param supplierId
     * @param enshrineType 收藏类型 0 店铺 1 商品 ,
     * @param shopId
     * @param goodsId
     * @param goodsSkuId
     * @param callback
     */
    public static void setMyCollectionGoods(Context context, int type, long userId, long supplierId, int enshrineType, int shopId, int goodsId, int goodsSkuId, Callback callback) {
        JsonParams jsonParams = new JsonParams();
        jsonParams.put("type", type);
        jsonParams.put("userId", userId);
        jsonParams.put("supplierId", supplierId);
        jsonParams.put("enshrineType", enshrineType);
        jsonParams.put("shopId", shopId);
        jsonParams.put("goodsId", goodsId);
        jsonParams.put("goodsSkuId", goodsSkuId);
        LeYaoGoClient.post(context, HttpConfig.BASE_URL + HttpConfig.METHOD_SET_MY_COLLECTION_GOODS, jsonParams, callback);
    }

    /**
     * 根据活动/专题 获取商品列表
     *
     * @param context
     * @param activityId 活动Id
     * @param pageNo
     * @param pageSize
     * @param callback
     */
    public static void getActivityGoodsList(Context context, int activityId, int pageNo, int pageSize, Callback callback) {
        JsonParams jsonParams = new JsonParams();
        jsonParams.put("activityId", activityId);
        jsonParams.put("userId", Utils.isUserLogin(false) ? Utils.getUserLoginInfo().getUserId() : 0);
        jsonParams.put("pageNo", pageNo);
        jsonParams.put("pageSize", pageSize);
        LeYaoGoClient.post(context, HttpConfig.BASE_URL + HttpConfig.METHOD_GET_ACTIVITY_GOODS_LIST, jsonParams, callback);
    }
}
